package br.com.bibliotech.entity;

import java.io.Serializable;
import javax.persistence.*;

/**
 *
 * @author kamilla
 */
@Entity
@Table(name="ALUNO")
@NamedQueries({
    @NamedQuery(name = "Pessoa.buscarPessoaPorNome", query = "SELECT a FROM Aluno a WHERE a.nome LIKE :valor"),
    @NamedQuery(name = "Pessoa.buscarPessoaPorMatricula", query = "SELECT a FROM Aluno a WHERE a.matricula = :valor"),
    @NamedQuery(name = "Pessoa.listarPessoas", query = "SELECT a FROM Aluno a")
})
public class Aluno implements Serializable {
    
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long id;
    
    @Column(name="nome")
    private String nome;
    
    @Column(name="matricula")
    private String matricula;
    
    @Column(name="periodo")
    private String periodo;
        
    @JoinColumn(name="id_endereco")    
    @OneToOne(cascade= CascadeType.ALL)
    private Endereco endereco;
    
    @JoinColumn(name="id_contato")
    @OneToOne(cascade= CascadeType.ALL)
    private Contato contato;
    
    public Aluno() {
    }

    public Aluno(String nome, String matricula, String periodo, Endereco endereco, Contato contato) {
        this.nome = nome;
        this.matricula = matricula;
        this.periodo = periodo;
        this.endereco = endereco;
        this.contato = contato;
    }

    public Contato getContato() {
        return contato;
    }

    public void setContato(Contato contato) {
        this.contato = contato;
    }

    public Endereco getEndereco() {
        return endereco;
    }

    public void setEndereco(Endereco endereco) {
        this.endereco = endereco;
    }

    public String getMatricula() {
        return matricula;
    }

    public void setMatricula(String matricula) {
        this.matricula = matricula;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getPeriodo() {
        return periodo;
    }

    public void setPeriodo(String periodo) {
        this.periodo = periodo;
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }
            
}
